package com.linktel.productionLine.controller;

import com.linktel.productionLine.common.BaseResponse;
import com.linktel.productionLine.common.ResultUtils;
import com.linktel.productionLine.entity.dto.basePedigree.BasePedigreeDTO;
import com.linktel.productionLine.service.BasePedigreeService;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 对工序base_step的有关请求
 *
 * @Author HuangJiaHui
 * @Date 2023/8/25 10:18
 */
@RestController
@RequestMapping("/baseStep")
@AllArgsConstructor
public class BasePedigreeController {

    protected BasePedigreeService basePedigreeService;

    /**
     * 查询所有产品系列
     * @return 产品系列列表
     */
    @GetMapping("productSeries")
    public BaseResponse<List<BasePedigreeDTO>> listProductSeries() {
        List<BasePedigreeDTO> basePedigreeDTOList = basePedigreeService.listProductSeries();
        return ResultUtils.success(basePedigreeDTOList);
    }
    /**
     * 查询所有产品
     * @return 产品列表
     */
    @GetMapping("product")
    public BaseResponse<List<BasePedigreeDTO>> listProduct() {
        List<BasePedigreeDTO> basePedigreeDTOList = basePedigreeService.listProduct();
        return ResultUtils.success(basePedigreeDTOList);
    }


    /**
     * 根据产品代码code得到产品系列
     *
     * @param productCode 产品代码id
     * @return 产品系列
     */
    @GetMapping("getByProductCode")
    public BaseResponse<BasePedigreeDTO> getProductSeriesByProductCode(String productCode) {
        if (productCode == null || "".equals(productCode)) {
            return null;
        }
        return ResultUtils.success(basePedigreeService.getProductSeriesByProductCode(productCode));
    }
    /**
     * 根据产品系列code得到产品代码列表
     *
     * @param productSeriesCode 产品系列id
     * @return 产品代码列表
     */
    @GetMapping("listByProductSeriesCode")
    public BaseResponse<List<BasePedigreeDTO>> listProductByProductSeriesCode(String productSeriesCode) {
        return ResultUtils.success(basePedigreeService.getProductListByProductSeriesCode(productSeriesCode));
    }

}
